Many types of software systems have been developed for storing and retrieving data. Relational databases are one type of solution that performs well in the specialized use areas they are designed for. However, relational databases are not applicable to all problems. It is generally understood that the performance of relational databases suffers when they are used to provide run-time flexibility in the information categories (i.e. tables) being stored.
In the area of non-relational systems, some systems are referred to as “semi-structured”, in that they involve the storage and retrieval of “semi-structured” information, such as XML (extensible Markup Language) documents. For example, non-relational systems may be more suitable than relational systems for the storage, management, retrieval, and exchange of personal information, and/or information relating to information workers.
Moreover, areas that have traditionally been approached using non-relational systems may not actually be cleanly reducible to a set of documents. Accordingly, existing “semi-structured” approaches may be inadequate for a category of data storage and retrieval applications. This category includes the storage and retrieval of personal information, and is characterized by high variability of the structure of the stored information. For example, a user of a personal information database may wish to store information regarding multiple personal contacts. However, when various communication modes are considered, the contact information stored for each contact is highly variable from contact to contact, and potentially also over time. Moreover, the functional context for each contact is also highly variable, since each piece of stored contact information for a given contact may or may not be relevant to a specific communication application. While existing systems using an XML-based approach have fared better than relational databases with regard to this problem, the information being represented is really not hierarchical, and imposing a hierarchy is the defining feature of the XML approach.
Additionally, if it is desirable to share parts of documents in a document based system, there arises the problem of maintaining different document versions, and the resulting dependencies become too complex for a system in which the documents are totally independent. File systems also suffer from the same problem, since they are based on an independent container model.
For the above reasons and others, it would be desirable to have a new system for information storage and retrieval that is applicable to problems not amenable to solution using relational databases, or using existing non-relational systems, such as existing semi-structured document-based systems, and necessarily having highly variable information structure. The new system should be applicable to storage, management, retrieval and exchange of various specific kinds of information, including personal information and/or information relating to information workers.